var DragableElement = function(callback, elementRef, group, config) {
    this.init(elementRef, group, config);
    this.initFrame();
    this.callback = callback;

    var style = this.getDragEl().style;
    var transparencyLevel = "75";
    style.opacity = "0." + transparencyLevel;
    style.filter = "alpha(opacity=" + transparencyLevel + ")";
};

// The extend method *MUST* follow the constructor!
YAHOO.extend(DragableElement, YAHOO.util.DDProxy);

DragableElement.prototype.startDrag = function(x, y) {
    var realElement = this.getEl();
    var dragElement = this.getDragEl();

    copyContentsAndStyle(realElement, dragElement);
}

DragableElement.prototype.onDragDrop = function(e, id) {
    this.callback(e);
}

DragableElement.prototype.endDrag = function() {
    // disable
}

function copyContentsAndStyle(sourceObject, destinationObject) {
    destinationObject.innerHTML = sourceObject.innerHTML;
    destinationObject.className = sourceObject.className;
}
